home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / scripts / headers_install.pl < prev    next >
Encoding:
Perl Script  |  2008-12-24  |  1.4 KB  |  47 lines

  1. #!/usr/bin/perl -w
  2. #
  3. # headers_install prepare the listed header files for use in
  4. # user space and copy the files to their destination.
  5. #
  6. # Usage: headers_install.pl readdir installdir arch [files...]
  7. # readdir:    dir to open files
  8. # installdir: dir to install the files
  9. # arch:       current architecture
  10. #             arch is used to force a reinstallation when the arch
  11. #             changes because kbuild then detect a command line change.
  12. # files:      list of files to check
  13. #
  14. # Step in preparation for users space:
  15. # 1) Drop all use of compiler.h definitions
  16. # 2) Drop include of compiler.h
  17. # 3) Drop all sections defined out by __KERNEL__ (using unifdef)
  18.  
  19. use strict;
  20.  
  21. my ($readdir, $installdir, $arch, @files) = @ARGV;
  22.  
  23. my $unifdef = "scripts/unifdef -U__KERNEL__";
  24.  
  25. foreach my $file (@files) {
  26.     local *INFILE;
  27.     local *OUTFILE;
  28.     my $tmpfile = "$installdir/$file.tmp";
  29.     open(INFILE, "<$readdir/$file")
  30.         or die "$readdir/$file: $!\n";
  31.     open(OUTFILE, ">$tmpfile") or die "$tmpfile: $!\n";
  32.     while (my $line = <INFILE>) {
  33.         $line =~ s/([\s(])__user\s/$1/g;
  34.         $line =~ s/([\s(])__force\s/$1/g;
  35.         $line =~ s/([\s(])__iomem\s/$1/g;
  36.         $line =~ s/\s__attribute_const__\s/ /g;
  37.         $line =~ s/\s__attribute_const__$//g;
  38.         $line =~ s/^#include <linux\/compiler.h>//;
  39.         printf OUTFILE "%s", $line;
  40.     }
  41.     close OUTFILE;
  42.     close INFILE;
  43.     system $unifdef . " $tmpfile > $installdir/$file";
  44.     unlink $tmpfile;
  45. }
  46. exit 0;
  47.